package com.songtech.server.Jedis;

import java.io.Serializable;
import java.util.List;

/**
 * Create By YINN on 2018/4/9 18:21
 * Description : Redis操作基础接口
 */

public interface JedisBaseDao<T extends Serializable> {

    boolean putForHash(final String namespace, final String key, final T value);

    boolean put(final String key, final T value);

    boolean put(final String key, final T value, long time);

    void deleteForHash(String namespace, String key);

    void delete(String key);

    T getForHash(String namespace, String key);

    T get(String key);

    void delete(List<String> keys);

//    boolean update(String key, final T value);

/**************************************   队列操作   ***********************************************/

    /**
     * 入栈（右入栈）
     */
    public Long rpush(String key, T value);

    /**
     * 入栈（左入栈）
     */
    public Long lpush(String key, T value);

    /**
     * 出栈(左出栈)
     */
    public T lpop(String key);

    /**
     * 队列长度
     */
    public Long size(String key);

    /**
     * 范围检索
     */
    public List<T> range(String key, int start, int end);

    /**
     * 移除
     */
    public void remove(String key, long i, T value) ;

    /**
     * 检索
     */
    public T index(String key, long index) ;

    /**
     * 裁剪
     */
    public void trim(String key, long start, long end) ;
}